$(document).ready(function(){
	/*
	 *会话类型
		1、RongIMLib.ConversationType.PRIVATE : 二人私聊会话类型，枚举值为 1 。
		2、RongIMLib.ConversationType.DISCUSSION : 讨论组会话类型，枚举值为 2 。
		3、RongIMLib.ConversationType.GROUP : 群组会话类型，枚举值为 3。
		4、RongIMLib.ConversationType.CHATROOM : 聊天室会话类型，枚举值为 4 。
		5、RongIMLib.ConversationType.CUSTOMER_SERVICE : 客服会话类型，枚举值为 5 。
		6、RongIMLib.ConversationType.SYSTEM : 系统消息类型，枚举值为 6 。
		7、RongIMLib.ConversationType.APP_PUBLIC_SERVICE : 公众账号（默认关注）会话类型，枚举值为 7 。
		8、RongIMLib.ConversationType.PUBLIC_SERVICE : 公众账号 (手动关注) 会话类型，枚举值为 8 。
	 */
});

var chatRoomId ='';
$(function() {
		var admin_id=$("#admin_id").val();
		var rcloud_token=$("#rcloud_token").val();
		var ryAppKey=$("#ryAppKey").val();
		 // 聊天室 Id。
		// 初始化
		// RongIMClient.init(appkey, [dataAccessProvider],[options]);
		// appkey:官网注册的appkey。
		// dataAccessProvider:自定义本地存储方案的实例，不传默认为内存存储，自定义需要实现WebSQLDataProvider所有的方法，此参数必须是传入实例后的对象。
		//应用名称：法制与新闻KF;	//App Key：c9kqb3rdkbwej;	//App Secret：6fkXQVdYCWdC
		RongIMClient.init(ryAppKey);
		
		//校验签名
		//.......
		//获得Token
		//.....
		// 消息监听器 必须设置监听器后，再连接融云服务器，代码示例如下：
		// 设置连接监听状态 （ status 标识当前连接状态）
		// 连接状态监听器
		RongIMClient.setConnectionStatusListener({
		    onChanged: function (status) {
		    	//alert('监听到链接状态');
		        switch (status) {
		            //链接成功
		            case RongIMLib.ConnectionStatus.CONNECTED:
		                console.log('链接成功');
		                break;
		            //正在链接
		            case RongIMLib.ConnectionStatus.CONNECTING:
		                console.log('正在链接');
		                break;
		            //重新链接
		            case RongIMLib.ConnectionStatus.DISCONNECTED:
		                console.log('断开连接');
		                break;
		            //其他设备登录
		            case RongIMLib.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT:
		                console.log('其他设备登录');
		                break;
		            case RongIMLib.ConnectionStatus.DOMAIN_INCORRECT:
		                console.log('域名不正确');
		                break;
		              //网络不可用
		            case RongIMLib.ConnectionStatus.NETWORK_UNAVAILABLE:
		              console.log('网络不可用');
		              break;
		            }
		    }});
		
		 // 消息监听器
		 RongIMClient.setOnReceiveMessageListener({
		    // 接收到的消息
		    onReceived: function (message) {		    	
		    	//alert('监听到了消息到来:'+message.content.content);
		    	//alert(JSON.stringify(message.content));
		        // 判断消息类型
		        switch(message.messageType){
		            case RongIMClient.MessageType.TextMessage:
		                // 发送的消息内容将会被打印
		                console.log(message.content.content);
		                break;
		            case RongIMClient.MessageType.VoiceMessage:
		            	// message.content.content 格式为 AMR 格式的 base64 码
		            	var base64Str = message.content.content;//"IyFBTVIKLNEafAAeef/hgmeAH8AD...";
		                // 对声音进行预加载
		                RongIMLib.RongIMVoice.preLoaded(base64Str); 
		                // 音频持续大概时间(秒)
		                var duration = base64Str.length/1024;
		                RongIMLib.RongIMVoice.play(base64Str,duration);//播放声音
		                //RongIMLib.RongIMVoice.stop(base64Str);暂停播放声音
		                break;
		            case RongIMClient.MessageType.ImageMessage:
		                // do something...
		                // message.content.content => 图片缩略图 base64。
		                // message.content.imageUri => 原图 URL。
		                break;
		            case RongIMClient.MessageType.DiscussionNotificationMessage:
		                // do something...
		            	// message.content.extension => 讨论组中的人员。
		                break;
		            case RongIMClient.MessageType.LocationMessage:
		                // do something...
		            	// message.content.latiude => 纬度。
		                // message.content.longitude => 经度。
		                // message.content.content => 位置图片 base64。
		                break;
		            case RongIMClient.MessageType.RichContentMessage:
		                // do something...
		            	 // message.content.content => 文本消息内容。
		                // message.content.imageUri => 图片 base64。
		                // message.content.url => 原图 URL。
		                break;
		            case RongIMClient.MessageType.DiscussionNotificationMessage:
		                // do something...
		                break;
		            case RongIMClient.MessageType.InformationNotificationMessage:
		                // do something...
		                break;
		            case RongIMClient.MessageType.ContactNotificationMessage:
		                // do something...
		                break;
		            case RongIMClient.MessageType.ProfileNotificationMessage:
		                // do something...
		                break;
		            case RongIMClient.MessageType.CommandNotificationMessage:
		                // do something...
		                break;
		            case RongIMClient.MessageType.CommandMessage:
		                // do something...
		                break;
		            case RongIMClient.MessageType.UnknownMessage:
		                // do something...
		                break;
		            default:
		                // 自定义消息
		                // do something...
		        }
		    }
		 });
		 
		  
		 RongIMClient.connect(rcloud_token, {
		        onSuccess: function(userId) {	        	
		          console.log("Login successfully." + userId);
		          console.log('连接成功！');
		          join_ptchatroom();
		        },
		        onTokenIncorrect: function() {
		          console.log('token无效');
		          //alert('token无效！');
		        },
		        onError:function(errorCode){	        	  
		              var info = '';
		              switch (errorCode) {
		                case RongIMLib.ErrorCode.TIMEOUT:
		                  info = '超时';
		                  break;
		                case RongIMLib.ErrorCode.UNKNOWN_ERROR:
		                  info = '未知错误';
		                  break;
		                case RongIMLib.ErrorCode.UNACCEPTABLE_PaROTOCOL_VERSION:
		                  info = '不可接受的协议版本';
		                  break;
		                case RongIMLib.ErrorCode.IDENTIFIER_REJECTED:
		                  info = 'appkey不正确';
		                  break;
		                case RongIMLib.ErrorCode.SERVER_UNAVAILABLE:
		                  info = '服务器不可用';
		                  break;
		              }	              
		              console.log(errorCode);
		              //alert(info);
		            }
		      });
		 
		 

			RongIMLib.RongIMEmoji.init();//使用默认 Emoji 和图片
			var emojis = RongIMLib.RongIMEmoji.emojis;//获取全部表情
			// emojis[0].innerHTML => <span class="RongIMExpression_rinning" name="[狞笑]"> 表情图片 </span>
			// emojis[0].children[0].getAttribute("name") => "[狞笑]"
			
			//此接口用来查询当前传入 Token（表示一个用户）是否有未读的消息。
			//检测是否有未读的消息此接口必须在init()方法之后调用。//tahpw_id
			RongIMClient.getInstance().hasRemoteUnreadMessages(rcloud_token,{
			    onSuccess:function(hasMessage){
			        if(hasMessage){
			            //alert("你有未读的消息");
			        }else{
			            // 没有未读的消息
			        }
			    },onError:function(err){
			        // 错误处理...
			    }
			});
		
		  
				 
		 $("#tosendmessage").click(function () {
			 sendRYMsg($('#touser').val(),$('#chat_msg_input').val(),'附加信息');
		 });		 
	})

   function join_ptchatroom(){
		var chatRoomId =$("#chatRoomId").val() ;
		var count = 2;// 拉取最近聊天最多 20 条。
		console.log(chatRoomId)
		console.log(count)
		RongIMClient.getInstance().joinChatRoom(chatRoomId, count, {
		  onSuccess: function() {
		       // 加入聊天室成功。
			  //alert('加入聊天室成功');
		  },
		  onError: function(error) {
		    // 加入聊天室失败
			  //alert('加入聊天室失败');
		  }
		});	
   }		

			
	//生成从minNum到maxNum的随机数
	function randomNum(minNum,maxNum){ 
	 switch(arguments.length){ 
	 case 1: 
	  return parseInt(Math.random()*minNum+1,10); 
	 break; 
	 case 2: 
	  return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); 
	 break; 
	  default: 
	  return 0; 
	  break; 
	 } 
	} 

	function getToken(){
		var token = "IHzlTQp/N8SzXkgqQjGg1ILYwJ+CW920WDRmkmpfDXq4cu2s1c5jjhSPxlK/EtODaFHo5GbpT6Vbl/0fMk+oLmC9KQvXen3W"; 
		return token;

		/*以下待测
		 *http://www.rongcloud.cn/docs/server.html#%E7%94%A8%E6%88%B7%E6%9C%8D%E5%8A%A1
		 *http://www.rongcloud.cn/docs/web.html#2%E3%80%81%E8%8E%B7%E5%8F%96_Token
		 POST /user/getToken.json HTTP/1.1
		Host: api.cn.ronghub.com
		App-Key: uwd1c0sxdlx2
		Nonce: 14314
		Timestamp: 1408706337
		Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
		Content-Type: application/x-www-form-urlencoded
		
		userId=jlk456j5&name=Ironman&portraitUri=http%3A%2F%2Fabc.com%2Fmyportrait.jpg
		=============================
		HTTP/1.1 200 OK
		Content-Type: application/json; charset=utf-8
		
		{"code":200, "userId":"jlk456j5", "token":"sfd9823ihufi"}
		 */
		var PostData= {};
		PostData["App-Key"]=ryAppKey;
		PostData["Nonce"]=randomNum(100000,999999);//随机数
		PostData["Timestamp"]=Date.parse(new Date())/1000;
		PostData["Signature"]=$.sha1(PostData["App-Key"]+PostData["Nonce"]+PostData["timestamp"]);
		
		$.ajax({  
			type: "POST",  
			cache: false,  
			data: {"data":JSON.stringify(PostData)},//"param_a=a.value,param_b=b.value"  
			async: false,
			dataType:"json",
			url: "http://api.cn.ronghub.com/user/getToken.json",  
			success: function(ret) {	
				if(ret['code'] == 200){
					return ret['token'];
				}else{
					//alert(ret.msg)
				}
			}, error: function(data) {  
				//alert('网络错误，请稍后再试！');
			}  
		});    
	}


	//发送文本消息
	//msgContent = "hello";msgExtra = "附加信息";
	//sendRYMsg("zrl_id",msgContent,msgExtra);
	function sendRYMsg(targetId,msgContent,msgExtra){	
		//定义消息类型,文字消息使用 RongIMLib.TextMessage
		var msg = new RongIMLib.TextMessage({content:msgContent,extra:msgExtra});
		//或者使用RongIMLib.TextMessage.obtain 方法.具体使用请参见文档
		//var msg = RongIMLib.TextMessage.obtain("hello");
		var conversationtype = RongIMLib.ConversationType.PRIVATE; // 私聊
		RongIMClient.getInstance().sendMessage(conversationtype, targetId, msg, {
		   // 发送消息成功
		   onSuccess: function (message) {
			   
		       //message 为发送的消息对象并且包含服务器返回的消息唯一Id和发送消息时间戳
		       console.log("Send successfully");
		       alert('发送成功');
		   },
		   onError: function (errorCode,message) {
		       var info = '';	      
		       switch (errorCode) {
		           case RongIMLib.ErrorCode.TIMEOUT:
		               info = '超时';
		               break;
		           case RongIMLib.ErrorCode.UNKNOWN_ERROR:
		               info = '未知错误';
		               break;
		           case RongIMLib.ErrorCode.REJECTED_BY_BLACKLIST:
		               info = '在黑名单中，无法向对方发送消息';
		               break;
		           case RongIMLib.ErrorCode.NOT_IN_DISCUSSION:
		               info = '不在讨论组中';
		               break;
		           case RongIMLib.ErrorCode.NOT_IN_GROUP:
		               info = '不在群组中';
		               break;
		           case RongIMLib.ErrorCode.NOT_IN_CHATROOM:
		               info = '不在聊天室中';
		               break;
		           default :
		               info = x;
		               break;
		       }
		       console.log('发送失败:' + info);
		       alert(info);
		           }
		       }
		   );
		
	}

	//发送其他消息：请参考文档：www.vradmin.com/index.php?g=Admin&m=Live&a=live_panel&live_id=201614812638234573
	//..............图片消息/图片消息/位置消息/位置消息/

	//正在输入状态消息:只有私聊有正在输入状态。.........
	//已读通知消息....
	//本地消息,此方法只有在使用本地存储的情况下有效。....
	//更改消息...共四个



